package com.peng.leetcode.search;

/**
 * Main111
 *
 * @author: lupeng6
 * @create: 2023/3/16 18:51
 */
public class Main111 {

    public static void main(String[] args) {
        int[] arr = new int[]{0, 0, 1, 3};
        int[] ans = new Main111().move(arr);
        for (int an : ans) {
            System.out.println(an);
        }
    }


//    public int[] move(int[] arr) {
//        // 0, 0, 1, 3
//        // 1, 0, 0, 3;
//        int r = 0;
//        for (int i = 0; i < arr.length; i++) {
//            if (r == arr.length) {
//                break;
//            }
//            if (arr[i] == 0) {
//                r = Math.max(r, i + 1);
//                while (r < arr.length) {
//                    if (arr[r] != 0) {
//                        arr[i] = arr[r];
//                        arr[r] = 0;
//                        r++;
//                        break;
//                    }
//                    r++;
//                }
//            }
//        }
//        return arr;
//    }

    public int[] move(int[] arr) {
        int l = 0;
        int r = arr.length - 1;
        boolean[] flag = new boolean[arr.length];
        for (int i = 0; i < arr.length; i++) {
            flag[i] = arr[i] == 0;
        }
        int[] ans = new int[arr.length];
        for (int i = 0; i < arr.length; i++) {
            if (flag[i]) {
                // ==0
                ans[r] = arr[i];
                r--;
            } else {
                ans[l] = arr[i];
                l++;
            }
        }
        return ans;
    }

}
